package com.lanou.impl;

import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lanou.mapper.ConfigFeeItemMapper;

import com.lanou.pojo.ConfigFeeItemEntity;
import com.lanou.service.ConfigFeeItemService;
import com.lanou.utils.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import java.util.UUID;

/**
 * @ClassName ConfigFeeItemServiceImpl
 * @Description: TODO
 * @Author 郅占伟
 * @Date 2023年10月26日
 * @Version: 1.0
 */
@Service
public class ConfigFeeItemServiceImpl implements ConfigFeeItemService {

    @Autowired
    private ConfigFeeItemMapper configFeeItemMapper;

    @Override
    public String getConfigFeeItemList(String pageNum, String pageSize, String type, String name) {
        PageHelper.startPage(Integer.valueOf(pageNum), Integer.valueOf(pageSize));

        // 获取数据
        List<ConfigFeeItemEntity> configFeeItemEntities = configFeeItemMapper.selectConfigFeeItemList(type, name);


        PageInfo<ConfigFeeItemEntity> pageInfo = new PageInfo<>(configFeeItemEntities);
        JsonResult<PageInfo<ConfigFeeItemEntity>> jsonResult = new JsonResult<>();
        jsonResult.setData(pageInfo);
        jsonResult.setStatus(200);

        return JSON.toJSONString(jsonResult);
    }


    @Override
    public String addConfigFeeItem(Map<String, String> map) {

        ConfigFeeItemEntity configFeeItemEntity = new ConfigFeeItemEntity();
        // 获取随机
        String randomId = UUID.randomUUID().toString().replace("-", "");
        // 获取数据
        String itemName = map.get("ItemName");
        String itemType = map.get("ItemType");
        String lateFeeEnable = map.get("lateFeeEnable");
        String numType = map.get("numType");
        String period = map.get("period");
        String price = map.get("price");

        // 设置默认值
        configFeeItemEntity.setId(randomId);
        configFeeItemEntity.setName(itemName);
        configFeeItemEntity.setType(itemType);
        configFeeItemEntity.setLateFeeEnable(lateFeeEnable);
        configFeeItemEntity.setNumType(numType);
        configFeeItemEntity.setPeriod(period);
        configFeeItemEntity.setPrice(price);
        configFeeItemEntity.setFormula("base");
        configFeeItemEntity.setGenerateType("base");
        configFeeItemEntity.setEnabledMark(1);

        configFeeItemMapper.addConfigFeeItem(configFeeItemEntity);

        JsonResult jsonResult = new JsonResult<>();
        jsonResult.setMessage("添加成功");
        jsonResult.setStatus(200);

        return JSON.toJSONString(jsonResult);
    }

    @Override
    public void deleteConfigFeeItemById(String id) {
        configFeeItemMapper.deleteConfigFeeItemById(id);
    }

    @Override
    public String updateConfigFeeItemById(ConfigFeeItemEntity configFeeItemEntity) {
        configFeeItemMapper.updateConfigFeeItemById(configFeeItemEntity);
        JsonResult jsonResult = new JsonResult();
        jsonResult.setMessage("修改成功");
        jsonResult.setStatus(200);
        return JSON.toJSONString(jsonResult);
    }

}
